<?php
namespace Todo\Controller;
use Todo\Builder\FormBuilder;
use Todo\Builder\ListBuilder;

/**
 * Class CurdController
 * 标准的CURD操作基类控制器
 * @package Admin\Controller
 */
class CurdController extends BackendController {

    /**
     * 列表
     */
    public function index(){
        $this->display('lists');
    }

    /**
     * 添加
     */
    public function add(){
        $this->display();
    }

    /**
     * 获取要编辑的数据，建议重写
     * @param $id
     * @return mixed
     */
    protected function _editData($id){
        $this->_loadModel();
        return $this->_model->keyFind($id);
    }

    /**
     * 编辑
     */
    public function edit(){
        $id = I('get.id');
        if(!$id) $this->error('非法请求!');
        $data = $this->_editData($id);
        $this->assign('data', $data);
        $this->display();
    }

    /**
     * 查看详细
     */
    public function view(){
        $id = I('get.id');
        if(!$id) $this->error('非法请求!');
        $data = $this->_editData($id);
        $this->assign('data', $data);
        $this->display();
    }

    /**
     * 审核菜单页面
     */
    public function verifys(){
        $data = $this->_lists(true);
        $this->assign($data);
        $this->display('verify_lists');
    }

    /**
     * 审核
     */
    public function verify(){
        $ids = I('get.id');
        if(!$ids) $this->error('非法请求!');
        $data = $this->_editData($ids);
        $this->assign('data', $data);
        $this->display();
    }

    /**
     * 导入
     */
    public function imports(){
        $this->display();
    }

    /**
     * 导出
     */
    public function export(){
        $this->_loadModel();
        $where = session(strtolower(MODULE_NAME) . '_'. strtolower(ACTION_NAME). '_'. 'export');
        $fields = I('post.fields');
        ExportService::getInstance()->export($this->_model, $where, $fields);
    }

}